Modular, Statically Typed, Flexibly Extensible Programming Language
نویسنده
چکیده
Even though extensible programming languages have been around for decades, they hav e not received much attention so far. To obtain a more attractive solution, where extending the language is almost as easy as writing normal programs, extensibility should not be provided as a separate add-on, but rather as the very heart of the language. Furthermore, syntactic flexibility should not only allow to extend, but also to completely change the syntax when desired. MOSTflexiPL follows this approach by allowing users to define new operators, control structures, type constructors, and ev en declaration forms almost as easily as functions without sacrificing static type safety. This is achieved by encoding all constructs as generalized operators possessing any number of names and operands in an arbitrary order, where users have full control over associativity, precedence, and ev en scoping rules. Even though the language is still under development, there is a working compiler that translates MOSTflexiPL programs to equivalent C++ code.
منابع مشابه
Fortgeschrittene Syntaxerweiterungen durch virtuelle Operatoren in MOSTflexiPL
MOSTflexiPL (Modular, Statically Typed, Flexibly Extensible Programming Language) ist eine statisch typisierte Programmiersprache, die vom Anwender nahezu beliebig erweitert und angepasst werden kann. Viele Syntaxerweiterungen, beispielsweise neue Operatorsymbole und Kontrollstrukturen, die in MOSTflexiPL unter einem sehr allgemeinen Operatorbegriff subsumiert werden, lassen sich genauso leicht...
متن کاملA Mixin-Based, Semantics-Based Approach to Reusing Domain-Specific Programming Languages
Domain-specific programming languages (DSLs) are emerging as an important paradigm for the engineering of large reliable software systems. Modular interpreters are an approach to building off-the-shelf software components that implement fragments of DSLs. We describe an approach to implementing modular interpreters in an object-oriented fashion, using the design pattern of extensible computatio...
متن کاملEffective Aspects: A Typed Monadic Embedding of Pointcuts and Advice
Aspect-oriented programming (AOP) aims to enhance modularity and reusability in software systems by offering an abstraction mechanism to deal with crosscutting concerns. However, in most general-purpose aspect languages aspects have almost unrestricted power, eventually conflicting with these goals. In this work we present Effective Aspects: a novel approach to embed the pointcut/advice model o...
متن کاملDynamic extension of typed functional languages
We present a solution to the problem of dynamic extension in statically typed functional languages with type erasure. The presented solution retains the benefits of static checking, including type safety, aggressive optimizations, and native code compilation of components, while allowing extensibility of programs at runtime. Our approach is based on a framework for dynamic extension in a static...
متن کاملA Theory of Tagged Objects
Foundational models of object-oriented constructs typically model objects as records with a structural type. However, many object-oriented languages are class-based; statically-typed formal models of these languages tend to sacrifice the foundational nature of the record-based models, and in addition cannot express dynamic class loading or creation. In this paper, we explore how to model static...
متن کامل